using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace NAVE_Alice_demo
{
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;

        public SpriteFont Arial;
        Texture2D cenaTeste;
        Random sorteio;
        int sorteadoAtual;
        int sorteadoAnterior;
        public static KeyboardState tecladoAtual;
        public static KeyboardState tecladoAnterior;

        public static int pontosTotal;
        public static int Vida=3;
        

        public static MouseState mouseTeste;

        
        Cena08.Outros.RachaCuca cena08;

        Cena08.RachaCuca Cena08;


        public static VideoPlayer video_Player;
        public static Video video_vitoria, video_derrota;
        bool isVideoPlayer;

        MouseState mouse_atual, mouse_anterior;

        HUD hud;

        public static int cena = 7;
        
        // se ganhou o puzzle ganha X pontos no total, e se perder o puzzle perde os mesmo pontos do total.
               
        public Game1()
        {   
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
            graphics.PreferredBackBufferWidth = 1024;
            graphics.PreferredBackBufferHeight = 768;
            graphics.IsFullScreen = false;
            //IsMouseVisible = true;
            graphics.ApplyChanges();
            
        }

        protected override void Initialize()
        {
            base.Initialize();
        }

        protected override void LoadContent()
        {
            //sorteio = new Random();
            EnumCena.cenaAtual = EnumCena.Cena.cena8;
            //video_Player = new VideoPlayer();
            //video_vitoria = Content.Load<Video>("Anima_Vitoria");
            //video_derrota = Content.Load<Video>("Anima_Derrota");
            //Arial = Content.Load<SpriteFont>(@"Cena_10\arial");



            spriteBatch = new SpriteBatch(GraphicsDevice);

            

            cena08 = new NAVE_Alice_demo.Cena08.Outros.RachaCuca();
            cena08.LoadContent(Content);

            Cena08 = new NAVE_Alice_demo.Cena08.RachaCuca(Content);

            hud = new HUD();
            hud.Load(Content);

            mouse_atual = new MouseState();
            mouse_anterior = new MouseState();
        }

        private void Sorteio()
        {
            //if (sorteadoAtual == 0 || sorteadoAnterior == 0)
            //    sorteadoAtual = sorteio.Next(1, 4);
            //else if (sorteadoAtual < 4 && sorteadoAnterior < 4 && sorteadoAtual != sorteadoAnterior)
            //    sorteadoAtual = sorteio.Next(4, 7);
            //else if (sorteadoAtual > 3 && sorteadoAtual < 7 && sorteadoAnterior > 3 && sorteadoAnterior < 7 && sorteadoAtual != sorteadoAnterior)
            //    sorteadoAtual = sorteio.Next(7, 10);

            if (cena == 1)//(sorteadoAtual == 1 && sorteadoAtual != sorteadoAnterior)
            {
                //EnumCena.cenaAtual = EnumCena.Cena.cena1;
                //cena++;
            }
            if (cena == 2)//(sorteadoAtual == 2 && sorteadoAtual != sorteadoAnterior)
            {
                EnumCena.cenaAtual = EnumCena.Cena.cena2;
                //cena++;
            }
            if (cena == 3)//(sorteadoAtual == 3 && sorteadoAtual != sorteadoAnterior)
            {
                EnumCena.cenaAtual = EnumCena.Cena.cena3;
                // cena++;
            }
             if (cena == 4)//(sorteadoAtual == 4 && sorteadoAtual != sorteadoAnterior)
            {
                EnumCena.cenaAtual = EnumCena.Cena.cena4;
               // cena++;
            }
             if (cena == 5)//(sorteadoAtual == 5 && sorteadoAtual != sorteadoAnterior)
            {
                EnumCena.cenaAtual = EnumCena.Cena.cena5;
                //cena++;
            }
            if (cena == 6)//(sorteadoAtual == 6 && sorteadoAtual != sorteadoAnterior)
            {
                EnumCena.cenaAtual = EnumCena.Cena.cena6;
                //cena++;
            }
             if (cena == 7)//(sorteadoAtual == 7 && sorteadoAtual != sorteadoAnterior)
            {
                EnumCena.cenaAtual = EnumCena.Cena.cena7;
                //cena++;
            }
            if (cena == 8)//(sorteadoAtual == 8 && sorteadoAtual != sorteadoAnterior)
            {
                EnumCena.cenaAtual = EnumCena.Cena.cena8;
                //cena++;
            }
             if (cena == 9)//(sorteadoAtual == 9 && sorteadoAtual != sorteadoAnterior)
            {
                EnumCena.cenaAtual = EnumCena.Cena.cena9;
            }
     
            sorteadoAnterior = sorteadoAtual;

        }

        protected override void Update(GameTime gameTime)
        {
            mouse_atual = Mouse.GetState();
            tecladoAtual = Keyboard.GetState();
            mouseTeste = Mouse.GetState();

           // Window.Title = "Alice Contra o Tempo"  
             //   Mouse.GetState().X + " " + Mouse.GetState().Y;

            switch (EnumCena.cenaAtual)
            {

                case EnumCena.Cena.cena8:
                    {
                        if(Keyboard.GetState().IsKeyDown(Keys.Enter))
                          Cena08.Update(gameTime);
                        else
                            cena08.Update(gameTime);
                        //Sorteio();
                        break;
                    }


            }

            mouse_anterior = mouse_atual;

            
            if (Game1.tecladoAtual.IsKeyDown(Keys.F11) &&
                !Game1.tecladoAnterior.IsKeyDown(Keys.F11))
            {
                graphics.ToggleFullScreen();
            }
            Game1.tecladoAnterior = Game1.tecladoAtual;

            base.Update(gameTime);
        }

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            spriteBatch.Begin();

            switch (EnumCena.cenaAtual)
            {
                case EnumCena.Cena.cena8:
                    {
                        if(Keyboard.GetState().IsKeyDown(Keys.Enter))
                            Cena08.Draw(spriteBatch);
                        else
                            cena08.Draw(gameTime, spriteBatch);
                        break;
                    }  
            }

            spriteBatch.End();
            base.Draw(gameTime);
        }
 
        void Acabou(bool venceu)
        {

        }

    }
}